package org.jeecg.modules.zcgl.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.ApprovalBaseEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 资产信息
 * @Author: jeecg-boot
 * @Date:   2020-06-19
 * @Version: V1.0
 */
@ApiModel(value="zcgl_asset_info对象", description="资产信息")
@Data
@TableName("zcgl_asset_info")
public class AssetInfo extends ApprovalBaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;


    /**资产类别*/
    @Excel(name = "资产类别", width = 15, dicCode = "zcgl_asset_type")
    @Dict(dicCode = "zc_type")
    @ApiModelProperty(value = "资产类别")
    private String zcType;


	/**资产分类*/
	@Excel(name = "取得方式", width = 15, dicCode = "zcgl_asset_classify")
    @Dict(dicCode = "zcgl_asset_classify")
    @ApiModelProperty(value = "取得方式")
    private String assetClass;
//	/**资产编码*/
//	@Excel(name = "资产编码", width = 15)
//    @ApiModelProperty(value = "资产编码")
//    private String assetCode;
	/**管理员*/
	@Excel(name = "管理员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "管理员")
    private String managerId;

	/**所属区域*/
	@Excel(name = "所属区域", width = 15, dictTable = "zcgl_region", dicText = "region_name", dicCode = "id")
    @Dict(dictTable = "zcgl_region", dicText = "region_name", dicCode = "id")
    @ApiModelProperty(value = "所属区域")
    private String regionId;

	/**资产名称*/
	@Excel(name = "资产名称", width = 15)
    @ApiModelProperty(value = "资产名称")
    private String assetName;
//	/**商户名称*/
//	@Excel(name = "商户名称", width = 15)
//    @ApiModelProperty(value = "商户名称")
//    private String merchantName;
	/**产权单位*/
	@Excel(name = "产权单位", width = 15)
    @ApiModelProperty(value = "产权单位")
    private String propertyRightUnit;
	/**产权证编号*/
	@Excel(name = "产权证编号", width = 15)
    @ApiModelProperty(value = "产权证编号")
    private String propertyRightCode;

//    /**原产权证号*/
//    @Excel(name = "原产权证号", width = 15)
//    @ApiModelProperty(value = "原产权证号")
//    private String formerPropertyRight;

    /**状态：1、草稿，10、闲置，20、部分出租，30、已出租，35、处置中，40、已处置，50、占用，60、借用，70、老旧危房无效资产，80、新接收资产未满5个月 */
    @Excel(name = "资产状态", width = 15, dicCode = "zcgl_asset_status")
    @Dict(dicCode = "zcgl_asset_status")
    @ApiModelProperty(value = "状态")
//    private Integer status;
    private Integer status;

    /**状态：1、草稿，10、闲置，20、部分出租，30、已出租，35、处置中，40、已处置，50、占用，60、借用，70、老旧危房无效资产，80、新接收资产未满5个月 */
//	@Excel(name = "资产状态", width = 15, dicCode = "zcgl_asset_status")
    @Dict(dicCode = "zcgl_asset_status")
    @ApiModelProperty(value = "状态")
    private Integer initStatus;
	/**资产处置*/
	@Excel(name = "资产处置", width = 15, dicCode = "asset_disposal")
    @Dict(dicCode = "asset_disposal")
    @ApiModelProperty(value = "资产处置")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer assetDisposal;

    /**资产处置日期*/
    @Excel(name = "资产处置日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "资产处置日期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date assetDisposalDate;

    /**资产处置说明*/
    @Excel(name = "资产处置情况说明", width = 15)
    @ApiModelProperty(value = "资产处置情况说明")
    private String assetDisposalDescription;

	/**楼层*/
	@Excel(name = "楼层", width = 15)
    @ApiModelProperty(value = "楼层")
    private String floorNumber;
	/**建成年份*/
	@Excel(name = "建成年份", width = 15/*, format = "yyyy-MM-dd"*/)
//	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "建成年份")
    private String buildTime;
	/**结构*/
	@Excel(name = "结构", width = 15)
    @ApiModelProperty(value = "结构")
    private String houseStructure;
	/**房屋用途*/
	@Excel(name = "房屋用途", width = 15)
    @ApiModelProperty(value = "房屋用途")
    private String houseUse;
	/**土地用途*/
	@Excel(name = "土地用途", width = 15)
    @ApiModelProperty(value = "土地用途")
    private String landUse;
	/**土地权利性质*/
	@Excel(name = "土地权利性质", width = 15)
    @ApiModelProperty(value = "土地权利性质")
    private String landAuthorityNature;
//	/**出让终止日期*/
//	@Excel(name = "出让终止日期", width = 15, format = "yyyy-MM-dd")
//	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern="yyyy-MM-dd")
//    @ApiModelProperty(value = "出让终止日期")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Date toSellEndtime;
//	/**取得日期*/
//	@Excel(name = "取得日期", width = 15, format = "yyyy-MM-dd")
//	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern="yyyy-MM-dd")
//    @ApiModelProperty(value = "取得日期")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Date getTime;
	/**坐落位置*/
	@Excel(name = "坐落位置", width = 15)
    @ApiModelProperty(value = "坐落位置")
    private String site;
	/**产权面积*/
	@Excel(name = "产权面积", width = 15)
    @ApiModelProperty(value = "产权面积")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal propertyRightArea;

    /**套内面积*/
    @Excel(name = "套内面积", width = 15)
    @ApiModelProperty(value = "套内面积")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal tnArea;




	/**建筑面积（m²）*/
	@Excel(name = "建筑面积（m²）", width = 15)
    @ApiModelProperty(value = "建筑面积（m²）")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal coveredArea;
	/**出租面积（m²）*/
	@Excel(name = "出租面积（m²）", width = 15)
    @ApiModelProperty(value = "出租面积（m²）")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal landUseArea;
	/**土地性质*/
	@Excel(name = "土地性质", width = 15, dicCode = "zcgl_asset_soiltype")
    @Dict(dicCode = "zcgl_asset_soiltype")
    @ApiModelProperty(value = "土地性质")
    private String landStatus;
	/**房屋性质*/
	@Excel(name = "房屋性质", width = 15, dicCode = "zcgl_asset_housetype")
    @Dict(dicCode = "zcgl_asset_housetype")
    @ApiModelProperty(value = "房屋性质")
    private String roomType;
	/**附件*/
	@Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String accessory;

    /**价值（万元）*/
    @Excel(name = "价值（万元）", width = 15)
    @ApiModelProperty(value = "价值（万元）")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal worth;

//    /**空置原因*/
//    @Excel(name = "空置原因", width = 15)
//    @ApiModelProperty(value = "空置原因")
//    private String emptyReason;

//    /**具体问题*/
//    @Excel(name = "具体问题", width = 15)
//    @ApiModelProperty(value = "具体问题")
//    private String concreteIssue;

//    /**是否有产权*/
//    @Excel(name = "是否有产权", width = 15, dicCode = "yn")
//    @Dict(dicCode = "yn")
//    @ApiModelProperty(value = "是否有产权")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Integer isProperty;

    /**管区*/
    @Excel(name = "管区", width = 15, dicCode = "zcgl_regional")
    @Dict(dicCode = "zcgl_regional")
    @ApiModelProperty(value = "管区")
    private Integer regional;

//    /**项目*/
//    @Excel(name = "项目", width = 15, dicCode = "zcgl_project")
//    @Dict(dicCode = "zcgl_project")
//    @ApiModelProperty(value = "项目")
//    private Integer project;
//
//    /**原管理单位*/
//    @Excel(name = "原管理单位", width = 15)
//    @ApiModelProperty(value = "原管理单位")
//    private String originalManagementUnit;
//
//    /**原产权单位*/
//    @Excel(name = "原产权单位", width = 15)
//    @ApiModelProperty(value = "原产权单位")
//    private String originalPropertyRightUnit;
//
//    /**批复文号*/
//    @Excel(name = "批复文号", width = 15)
//    @ApiModelProperty(value = "批复文号")
//    private String approvalDocumentNumber;

    /**调拔时间*/
    @Excel(name = "调拔时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "调拔时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date pullTime;

    /**产权证地址*/
    @Excel(name = "产权证地址", width = 15)
    @ApiModelProperty(value = "产权证地址")
    private String addressPropertyDivision;

//    /**上会时间*/
//    @Excel(name = "上会时间", width = 15)
//    @ApiModelProperty(value = "上会时间")
//    private String meetingTime;

//    /**上会时间*/
//    @Excel(name = "上会时间", width = 15, format = "yyyy-MM-dd")
//    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern="yyyy-MM-dd")
//    @ApiModelProperty(value = "上会时间")
//@TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Date meetingTime;

    /**经度*/
    @Excel(name = "经度", width = 15)
    @ApiModelProperty(value = "经度")
    private BigDecimal longitude;

    /**纬度*/
    @Excel(name = "纬度", width = 15)
    @ApiModelProperty(value = "纬度")
    private BigDecimal latitude;




    @Excel(name = "经营情况",width = 15, orderNum = "25")
    @ApiModelProperty(value = "经营情况")
    private String businessCircumstance;
    /**接收时间*/
    @Excel(name = "接收时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "接收时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date receiptTime;

    @Excel(name = "接收类型",width = 15, orderNum = "25")
    @ApiModelProperty(value = "接收类型")
    private String receiptType;

    @Excel(name = "管理单位",width = 15, orderNum = "25", dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "管理单位")
    private String managementUnitId ;

    @Excel(name = "权利类型",width = 15, orderNum = "25", dicCode = "zcgl_land_authority_type")
    @Dict(dicCode = "zcgl_land_authority_type")
    @ApiModelProperty(value = "权利类型")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer landAuthorityType;

//    @Excel(name = "权籍情况",width = 15, orderNum = "26", dicCode = "zcgl_right_citizenship_situation")
//    @Dict(dicCode = "zcgl_right_citizenship_situation")
//    @ApiModelProperty(value = "权籍情况")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Integer rightCitizenshipSituation;

    @Excel(name = "权属情况",width = 15, orderNum = "26", dicCode = "zcgl_ownership_situation")
    @Dict(dicCode = "zcgl_ownership_situation")
    @ApiModelProperty(value = "权属情况")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer ownershipSituation;

//    @Excel(name = "使用权人名称",width = 15, orderNum = "26")
//    @ApiModelProperty(value = "使用权人名称")
//    private String holderRightName;

    @Excel(name = "使用权证号",width = 15, orderNum = "26")
    @ApiModelProperty(value = "使用权证号")
    private String licenseNumber;

    @Excel(name = "收款税率",width = 15, orderNum = "26")
    @ApiModelProperty(value = "收款税率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal collectionRate;
//
//    @Excel(name = "是否抵押",width = 15, orderNum = "26", dicCode = "yn")
//    @Dict(dicCode = "yn")
//    @ApiModelProperty(value = "是否抵押")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    private Integer izMortgage;


    /**
     * 总合同数量
     */
    @ApiModelProperty(value = "总合同数量")
    private Integer allContractQuantity;

    /**
     * 现有合同数量
     */
    @ApiModelProperty(value = "现有合同数量")
    private Integer hasContractQuantity;

    /**
     * 最后一次合同到期时间
     */
//    @Excel(name = "下次生成缴费信息日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "最后一次合同到期时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date lastRentEndTime;

    /**
     * 资产明细数量
     */
    @ApiModelProperty(value = "资产明细数量")
    private Integer hasSubQuantity;


    @Excel(name = "土地等级",width = 15, orderNum = "26")
    @ApiModelProperty(value = "土地等级")
    private String landLevel;

    @Excel(name = "土地面积(亩)", width = 15)
    @ApiModelProperty(value = "土地面积(亩)")
    private BigDecimal landArea;

    @Excel(name = "土地面积(平方)", width = 15)
    @ApiModelProperty(value = "土地面积(平方)")
    private BigDecimal landAreaSquare;

    @Excel(name = "共有面积(平方)", width = 15)
    @ApiModelProperty(value = "共有面积(平方)")
    private BigDecimal totalArea;

    @Excel(name = "评估入账金(万元)", width = 15)
    @ApiModelProperty(value = "共有面积(平方)")
    private BigDecimal evaluateFees;

    @Excel(name = "总库容(万立方米)", width = 15)
    @ApiModelProperty(value = "总库容(万立方米)")
    private BigDecimal totalCapacity;
//
//    @Excel(name = "入账价值(万元)", width = 15)
//    @ApiModelProperty(value = "入账价值(万元)")
//    private BigDecimal entryValue;

    @Excel(name = "车位数", width = 15)
    @ApiModelProperty(value = "车位数")
    private Integer parkingSpaceNumber;

    @Excel(name = "抵押情况", width = 15)
    @ApiModelProperty(value = "抵押情况")
    private String mortgageSituation;

    @Excel(name = "栋号", width = 15)
    @ApiModelProperty(value = "栋号")
    private String movieTheater;

    @Excel(name = "原栋号", width = 15)
    @ApiModelProperty(value = "原栋号")
    private String oldMovieTheater;

    @Excel(name = "视觉楼层", width = 15)
    @ApiModelProperty(value = "视觉楼层")
    private String visualFloor;

    @Excel(name = "房号", width = 15)
    @ApiModelProperty(value = "房号")
    private String roomNumber;

    @Excel(name = "挂牌面积", width = 15)
    @ApiModelProperty(value = "挂牌面积")
    private BigDecimal tradingArea;

    @Excel(name = "处置户型", width = 15)
    @ApiModelProperty(value = "处置户型")
    private String disposalRoom;

    @Excel(name = "处置方式", width = 15)
    @ApiModelProperty(value = "处置方式")
    private String disposalType;

    @Dict(dicCode = "zcgl_asset_type")
    @Excel(name = "资产类型", width = 15, dictTable = "zcgl_asset_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "资产类型")
    private String assetType;

    @Excel(name = "年租金", width = 15)
    @ApiModelProperty(value = "年租金")
    private BigDecimal rentYear;

    @Excel(name = "住宅面积", width = 15)
    @ApiModelProperty(value = "住宅面积")
    private BigDecimal residentialArea;

    @Excel(name = "非住宅面积", width = 15)
    @ApiModelProperty(value = "非住宅面积")
    private BigDecimal nonResidentialArea;

    @Excel(name = "门市面积", width = 15)
    @ApiModelProperty(value = "门市面积")
    private BigDecimal outletsArea;
}
